Social networking with video annotation

ABSTRACT

A method and system for annotating Playable Media Files in a social network having a plurality of members, wherein the method includes receiving the Playable Media File from a first member, receiving an annotation from another member, and saving the annotation in a file other than the Playable Media File.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a Continuation-In-Part Patent Application of a U.S.Non-Provisional Patent Application having Ser. No. 14/170,149, filed onJan. 31, 2104, now U.S. Pat. No. 9,451,001, which claimed priority toU.S. Provisional Patent Application having Ser. No. 61/759,219, filed onJan. 31, 2013. The disclosure of each of the above-identified patentdocuments is incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

Embodiments generally relate to assemblies, methods, devices, andsystems for managing information, and more particularly, to assemblies,methods, devices, and systems for sharing and annotating video databetween members of a social network.

SUMMARY OF THE INVENTION

A method to create and save an annotation associated with a PlayableMedia File is disclosed. The method includes receiving a Playable MediaFile, creating an annotation relating to the Playable Media File,providing the annotation to a network server, providing a data profileto the network server, wherein the data profile comprises a location inthe Playable Media File where the annotation should be made visible,determining by the network server if the annotation is a firstannotation submitted for the Playable media File, if the annotation isnot a first annotation submitted for the Playable Media File, encodingthe data profile in a previously-created table of contents for thePlayable Media File, if the annotation is a first annotation submittedfor the Playable Media File, then creating a table of contents by thenetwork server for the Playable Media File and encoding by the networkserver the data profile in the table of contents, wherein the PlayableMedia File is selected from the group consisting of an audio file, avideo file, an audiovisual file, slide show, AVI file, MP3 file, MP4file, WMA file, WAV file, Flash, and MPEG file.

An article of manufacture is disclosed. Applicants' article ofmanufacture comprises a processor, a computer readable medium comprisingcomputer readable program code disposed therein to create and save anannotation associated with a Playable Media File, the computer readableprogram code comprising a series of computer readable program steps tocause the processor to effect receiving a Playable Media File, creatingan annotation relating to the Playable Media File, providing theannotation to a network server, providing a data profile to the networkserver, wherein the data profile comprises a location in the PlayableMedia File where the annotation should be made visible, determining bythe network server if the annotation is a first annotation submitted forthe Playable media File, if the annotation is not a first annotationsubmitted for the Playable Media File, encoding the data profile in apreviously-created table of contents for the Playable Media File, if theannotation is a first annotation submitted for the Playable Media File,then creating a table of contents by the network server for the PlayableMedia File and encoding by the network server the data profile in thetable of contents, wherein the Playable Media File is selected from thegroup consisting of an audio file, a video file, an audiovisual file,slide show, AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, andMPEG file.

A non-transitory computer usable medium encoded with a computer programproduct to create and save an annotation associated with a PlayableMedia File and usable with programmable computer processor disposedwithin a controller, is disclosed. Applicants' computer program productcomprises computer readable program code which causes the programmablecomputer processor to receive a Playable Media File, create anannotation relating to the Playable Media File, provide the annotationto a network server, provide a data profile to the network server,wherein the data profile comprises a location in the Playable Media Filewhere the annotation should be made visible, determine by the networkserver if the annotation is a first annotation submitted for thePlayable media File, if the annotation is not a first annotationsubmitted for the Playable Media File, encode the data profile in apreviously-created table of contents for the Playable Media File, if theannotation is a first annotation submitted for the Playable Media File,then create a table of contents by the network server for the PlayableMedia File and encode by the network server the data profile in thetable of contents, wherein the Playable Media File is selected from thegroup consisting of an audio file, a video file, an audiovisual file,slide show, AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, andMPEG file.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be better understood from a reading of the followingdetailed description taken in conjunction with the drawings in whichlike reference designators are used to designate like elements, and inwhich:

FIG. 1 illustrates an exemplary embodiment of a system for annotatingvideo within a social network;

FIG. 2 illustrates another exemplary embodiment of a system forannotating video within a social network;

FIG. 3 is a table of information fields stored in association with eachPlayable Media File;

FIG. 4 is a flowchart of the method and/or process related to annotatingPlayable Media File within a social network;

FIG. 5A summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 5B summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 6 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 7 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 8 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 9 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 10 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 11 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product;

FIG. 12 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product; and

FIG. 13 summarizes additional steps in Applicants' method, additionalsteps implemented by Applicants' article of manufacture, and additionalsteps performed by a programmable processor implementing Applicants'computer program product.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The invention is described in preferred embodiments in the followingdescription with reference to the FIGs., in which like numbers representthe same or similar elements. Reference throughout this specification to“one embodiment,” “an embodiment,” or similar language means that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment of thepresent invention. Thus, appearances of the phrases “in one embodiment,”“in an embodiment,” “in certain embodiments,” and similar languagethroughout this specification may, but do not necessarily, all refer tothe same embodiment. It is noted that, as used in this description, thesingular forms “a,” “an” and “the” include plural referents unless thecontext clearly dictates otherwise.

The described features, structures, or characteristics of theinvention(s) may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details arerecited to provide a thorough understanding of embodiments of theinvention(s). One skilled in the relevant art will recognize, however,that the invention(s) may be practiced without one or more of thespecific details, or with other methods, components, materials, and soforth. In other instances, well-known structures, materials, oroperations are not shown or described in detail to avoid obscuringaspects of the invention.

The schematic flow chart diagrams included are generally set forth as alogical flow-chart diagram (e.g., FIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, 11,12, and 13). As such, the depicted order and labeled steps areindicative of one embodiment of the presented method. In certainembodiments, other steps and methods are conceived that are equivalentin function, logic, or effect to one or more steps, or portions thereof,of the illustrated method. Additionally, the format and symbols employedare provided to explain the logical steps of the method and areunderstood not to limit the scope of the method. Although various arrowtypes and line types are employed in the flow-chart diagrams, they areunderstood not to limit the scope of the corresponding method (e.g.,FIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, 11, 12, and 13). Indeed, some arrows orother connectors may be used to indicate only the logical flow of themethod. For instance, an arrow indicates a waiting or monitoring periodof unspecified duration between enumerated steps of the depicted method.Additionally, the order in which a particular method occurs may or maynot strictly adhere to the order of the corresponding steps shown.

In certain embodiments, individual steps recited in FIGS. 4, 5A, 5B, 6,7, 8, 9, 10, 11, 12, and 13, are combined, eliminated, or reordered.

Applicants' system and method includes a network wherein a video can becreated using any available video format, and that video can be sharedbetween a plurality of people. In certain embodiments, Applicants'system and method can be used by multiple members of a social network toassociate annotations with a Playable Media File, and/or to initiatediscussion threads associated with that Playable Media File.

Referring to FIG. 1, a portion of Applicants' network 100 isillustrated. In certain embodiments, Applicants' network 100 comprises asocial network. In certain embodiments, Applicants' social network 100is an open social network. In certain embodiments, Applicants' socialnetwork 100 is a closed social network.

In the illustrated embodiment of FIG. 1, network 100 comprises a networkserver 130 that is communicatively connected to a computing device 110through a first communication fabric 120 and a computing device 150through a second communication fabric 140. In certain embodiments, thenetwork server 130 is owned and/or operated by a social networkingservice provider while computing devices 110 and 150 are owned and/oroperated by users or members of the social network 100, where a memberhas a profile containing information about the member stored ininformation 137 of the social network server 130. In some embodiments,the computing device 110 is owned and operated by a first member and thecomputing device 150 is owned and operated by a second member.

For the sake of clarity, FIG. 1 shows a first computing device 110,network server 130, and a second computing device 150. FIG. 1 should notbe taken as limiting. Rather, in other embodiments any number ofentities and corresponding devices can be part of the network 100, andfurther, although FIG. 1 shows two communication fabrics 120 and 140, inother embodiments, less then, or more than, two communication fabricsare provided in the social network 100. For example, in certainembodiments, the communication fabric 120 and the communication fabric140 are the same communication fabric.

In certain embodiments, the computing devices 110 and 150 and host 130are each an article of manufacture. Examples of the article ofmanufacture include: a server, a mainframe computer, a mobile telephone,a smart telephone, a personal digital assistant, a personal computer, alaptop, a set-top box, an MP3 player, an email enabled device, a tabletcomputer, a web enabled device, or other special purpose computer eachhaving one or more processors (e.g., a Central Processing Unit, aGraphical Processing Unit, or a microprocessor) that are configured toexecute Applicants' API to receive information fields, transmitinformation fields, store information fields, or perform methods.

By way of illustration and not limitation, FIG. 1 illustrates thecomputing device 110, the network server 130, and the computing device150 as each including a processor 112, 132, and 152, respectively, anon-transitory computer readable medium 113, 133, and 153, respectively,having a series of instructions 114, 134, and 154, respectively, encodedtherein, an input/output means 111, 131, and 151, respectively, such asa keyboard, a mouse, a stylus, touch screen, a camera, a scanner, or. aprinter. Computer readable program code 114, 134, and 154 is encoded innon-transitory computer readable media 113, 133, and 153, respectively.Processors 112, 132, and 152 utilize computer readable program code 114,134, and 154, respectively, to operate computing devices 110, 130, and150, respectively. In certain embodiments, the computing device 110,130, and 150 employ hardware and/or software that supportsaccelerometers, gyroscopes, magnetometers (e.g., solid state compasses)and the like.

Processors 112 and 152 utilize Applicants' Application ProgramInterfaces (APIs) 116 and 156, respectively, encoded in computerreadable media 113 and 153, respectively, to communicate with host 130and access Applicants' algorithm 136 encoded in computer readable medium133 to implement Applicants' social network and method described herein.Algorithm 136 comprises Applicants' source code to operate a public orprivate social network, and when implemented by computing device 110causes a graphic user interface (“GUI”) to be displayed on displayscreen 115, wherein that GUI comprises and displays a plurality ofgraphical interactable objects. A member using computing device 110 (orcomputing device 150) can utilize that GUI to access a logical volume,such as for example and without limitation logical volume 180 (FIG. 2),wherein information specific to that user are encoded in logical volume180. The member and/or user can further utilize the GUI to accessApplicants' social network as described herein.

Processor 132 accesses the computer readable program code 134, encodedon the non-transitory computer readable medium 133, and executes aninstruction 136 to electronically communicate with the computing device110 via the communication fabric 120 or electronically communicate withthe computing device 150 via the communication fabric 140. Encodedinformation 137 includes, for example and without limitation, the datacommunicated or information fields communicated, e.g., date and time oftransmission, frequency of transmission and the like, with any or all ofthe computing device 110 and the computing device 150. In certainembodiments, information 137 is analyzed and/or mined. In certainembodiments, information 137 is encoded in a plurality of individuallogical volumes specific to each member/user.

In certain embodiments, computing devices 110 and 150 further compriseone or more display screens 115 and 155, respectively. In certainembodiments, display screens 115 and 155 comprise an LED display device.

In certain embodiments, the information fields received from thecomputing device 110 at the network server 130 are exchanged with othercomputing devices not shown in FIG. 1. For example, information fieldsreceived from a social network in which the member has an Internetpresence is sent to the social network server 130 and stored at theinformation 137 in association with a profile of the member.Alternatively, or in combination, the information fields transmittedfrom the computing device 110 to the social network server 130 is sentto an account of the member within the social network.

In certain embodiments, information 137 is encoded in one or more harddisk drives, tape cartridge libraries, optical disks, combinationsthereof, and/or any suitable data storage medium, storing one or moredatabases, or the components thereof, in a single location or inmultiple locations, or as an array such as a Direct Access StorageDevice (DASD), redundant array of independent disks (RAID),virtualization device, etc. In certain embodiments, information 137 isstructured by a database model, such as a relational model, ahierarchical model, a network model, an entity-relationship model, anobject-oriented model, or a combination thereof. For example, in certainembodiments, the information 137 is structured in a relational modelthat stores a plurality of Identities for each of a plurality of membersas attributes in a matrix.

In certain embodiments, the computing devices 110, 130, and 150 includewired and/or wireless communication devices which employ variouscommunication protocols including near field (e.g., “Blue Tooth”) and/orfar field communication capabilities (e.g., satellite communication orcommunication to cell sites of a cellular network) that support anynumber of services such as: telephony, Short Message Service (SMS) fortext messaging, Multimedia Messaging Service (MMS) for transfer ofphotographs and videos, electronic mail (email) access, or GlobalPositioning System (GPS) service, for example.

As illustrated in FIG. 1, the communication fabrics 120 and 140 eachcomprise one or more switches 121 and 141, respectively. In certainembodiments, communication fabrics 120 and 140 are the same. In certainembodiments, at least one of the communication fabrics 120 and 140comprises the Internet, an intranet, an extranet, a storage area network(SAN), a wide area network (WAN), a local area network (LAN), a virtualprivate network, a satellite communications network, an interactivetelevision network, or any combination of the foregoing. In certainembodiments, at least one of the communication fabrics 120 and 140contains either or both wired or wireless connections for thetransmission of signals including electrical connections, magneticconnections, or a combination thereof. Examples of these types ofconnections include: radio frequency connections, optical connections,telephone links, a Digital Subscriber Line, or a cable link. Moreover,communication fabrics 120 and 140 utilize any of a variety ofcommunication protocols, such as Transmission Control Protocol/InternetProtocol (TCP/IP), for example.

Referring to FIG. 2, the computing devices 110, 130 and 150 are eachcommunicatively connected to the communication fabric 120, such as a WANor Internet. The network server 130 is a computing device that is ownedand/or operated by a networking service provider, and computing devices110 and 150 are owned and/or operated by individual network users. Incertain embodiments, network server is owned and/or operated by a socialnetwork provider. In certain embodiments, the network server 130provides access to the computing devices 110 and 150 to executeApplicants' source code 136 via a Software as a Service (SaaS) means.

In certain embodiments information fields are received from one or morecomputing devices 110, 130 and/or 150 and stored on the “Cloud” such asdata storage library 160 and/or 170. Referring to FIG. 2, each of thedata storage libraries 160 and 170 have corresponding physical storagedevices, such as and without limitation physical data storage devices163-169 for data storage library 160 and 173-179 for data storagelibrary 170.

In certain embodiments, data storage library 160 and data storagelibrary 170 are configured in a Peer To Peer Remote Copy (“PPRC”)storage system, wherein the information fields in data storage library160 is automatically backed up in data storage library 170. In certainembodiments, Applicants' PPRC storage system utilizes synchronouscopying. In certain embodiments, Applicants' PPRC storage systemutilizes asynchronous copying.

In the illustrated embodiment of FIG. 2, physical storage device 163 isconfigured to comprise logical volume 180. In certain embodiments, eachphysical storage device in data storage library 160 is configured tocomprise a plurality of logical volumes. Similarly, each physicalstorage device in data storage library 170 is configured to comprise acorresponding plurality of logical volumes. In certain embodiments, eachmember of the social network is assigned a unique logical volume. Insuch embodiments a permission file 157 may be encoded in computerreadable medium 133 or in data storage libraries 160 and 170 thatassociates each logical volume with a social network member and furtherassociates each logical volume with access permissions for certaindesignated other social network users. Each social network userconfigures his/her own logical volume permissions. In certainembodiments, if a first user desires to remove access permissions from asecond user, that first member simply accesses his/her permissions fileand deletes the second user. Thereafter, the second user cannot retrievedata stored on the logical volume associated with the first user.

Referring to FIGS. 1, 2, and 3, Applicants algorithm 136, and itsfunctions, can be accessed by users of Applicants' network 100 tocreate, share, edit, associate one or more annotations with, and/orassociate one or more discussion threads with, a Playable Media File.One member, using a computing device such as computing device 110 or150, to access network server 130, streams a Playable Media File fromits original storage location. In certain embodiments the Playable MediaFile is encoded in a unique logical volume accessible by a first user.That first user can grant access to the Playable Media File to one ormore other users by storing access permissions in permission file 157.In certain embodiments the access includes levels such as, and withoutlimitation, view only, view/edit, view/edit/share, and the like. Incertain embodiments the access includes conditions or restrictions suchas expirations dates, limitations on the number of times the file can beviewed, and the like.

Referring now to 3, when a user having permission streams the PlayableMedia file, and if that user associates an annotation with the PlayableMedia File, a data profile 300 is created for the Playable Media Fileand is stored on network server 130, and optionally on data storagelibrary 160 or 170. Data profile 300 includes various informationfields, including the Global Unique Identifier (GUID) 302 associatedwith the creating member, a description 304 of the Playable Media File(e.g., a title), and permissions 306 held by various members to access,edit, and/or share the Playable Media File. Data profile 300 may furtherinclude subsequently added annotations 312 and discussion threads 328.

Applicants algorithm 136 provides the ability for each user havingaccess to the

Playable Media File to associate annotations for display at varioustimeline locations as the Playable Media File is streamed from itsoriginal storage location. Such annotations may be any known format andmay include text, video, audio, pictures, or a combination thereof, andare stored as a separate file. When subsequent viewers execute thePlayable Media File the annotation(s) will be visible at the specifiedtime segment. In certain such embodiments, the annotation is shown inthe same window as the Playable Media File and may be visible over thePlayable Media File. In other embodiments, the annotation is shown in aseparate window. Applicants' algorithm 136 generates a timeline whichdisplays when the Playable Media File is streamed.

In certain embodiments, the member creating the annotation can setpermissions for the annotation, restricting who can view or edit theannotation. In such embodiments, the permissions are stored inpermission file 157. Referring now to FIG. 4, in step 410 a firstnetwork user encodes a first Playable Media file in a first storagelocation. In step 420, the first user receives a request to share thefirst Playable Media File with a second network user. In step 430, thefirst network user grants access to the first

Playable Media File to the requesting second network user. The firstuser's grant of access right to the second network user is encoded in apermission file 157. In step 440, the network server provides notice tothe second network user regarding that second user's access privilege(s)to access the first Playable Media File from the first storage location.In certain embodiments the notice may further include a link to thePlayable Media File or information about where and how to access thePlayable Media File.

For those Playable Media Files having annotations, data profile 300further contains information fields concerning each annotation312(a)-(n), including one or more of the type 320 of the annotation(text, audio, video, picture, etc.), the location 322 of the associatedannotation within the Playable Media File, the GUID 324 of the memberwho initiated the annotation, and a description 326 for the annotation,such as a title or other descriptor.

In certain embodiments Applicants' algorithm 136 further generates atable of contents of the annotations added to the Playable Media Fileusing the information in data profile 300, including a link to eachannotation. The link may be in the form of a pointer, electronicbookmark, hyperlink, or any other type of link. Where the link is ahyperlink, the hyperlink may link to an annotation that is saved as adifferent file on data storage library 160 or 170. In certainembodiments, annotation(s) may be viewed and edited separately from thePlayable Media File. For each new annotation added to the Playable MediaFile, Applicants' algorithm 136 updates the table of contents. In suchembodiments, the table of contents may include one or more of a captionor other description of the annotation, the time of the annotationwithin the Playable Media File, the author of the annotation, and thedate and/or time the annotation was made.

FIG. 5 summarizes Applicants' method to save and share annotationsassociated with a Playable Media File. Referring now to FIG. 5, in step510 the method encodes an annotation to be associated with a PlayableMedia File in a storage location, i.e. a file, that differs from thePlayable Media File. In certain embodiments, step 510 is performed byApplicants' algorithm 136. In certain embodiments, step 510 is performedby the user creating the annotation.

In certain embodiments, the “visibility” for annotation saved in step510 is by default defined as “public,” meaning that any other user whohas permission to stream the Playable Media File has permission tostream that “public” annotation. In step 520, Applicants' methoddetermines whether to change that “visibility” from “public” to“private.”

If the method elects in step 520 not to change the visibility frompublic to private, then the method transitions from step 520 to step 530and includes a storage location for the saved annotation in a sitemappublished to search engines. Applicants' method transitions from step530 to step 570.

Alternatively, if the method elects in step 520 to change the visibilityfrom public to private, then the method transitions from step 520 tostep 540 and does not include a storage location for the savedannotation in a sitemap published to search engines. In certainembodiments, step 540 is performed by Applicants' network server 130. Incertain embodiments, step 540 is performed by Applicants' algorithm 136.

Applicants' method transitions from step 540 to step 550 wherein themethod determines whether to share the saved annotation to specificrecipients. In certain embodiments, step 550 is performed by Applicants'network server 130. In certain embodiments, step 550 is performed byApplicants' algorithm 136,

If Applicants' method elects in step 550 to not share the annotationwith specific recipients, then the method transitions from step 550 tostep 570. Alternatively, if Applicants' method elects in step 550 toshare the annotation with specific recipients, then the methodtransitions from step 550 to step 560 wherein the user to prompted toenters recipients in the form of name(s), and/or email address, and/orsocial media account. Applicants' method transitions from step 560 tostep 570.

In step 570, the method determines if the annotation encoded in step 510is the first annotation for the Playable Media File, If the methoddetermines if the annotation saved in step 510 comprises a firstannotation for the Playable Media File, then the method transitions tostep 590 wherein a table of contents is created for the Playable MediaFile. Alternatively, if the annotation is not the first and the PlayableMedia File already has a table of contents, then the method transitionsto step 580 wherein the method updates the table of contents to includean entry for the saved annotation of step 510. For example, upon receiptof an annotation from computing device 150 of the second user, networkserver 130 determines if the Playable Media File already has annotations(and thus a table of contents) by checking annotations field 312 (FIG.3) of data profile 300. If no annotations are included in the PlayableMedia File, the network server 130 creates a table of contents using thedata in data profile 300 and the annotation and any related informationreceived from computing device 150. In certain embodiments the table ofcontents is then saved separately from the Playable Media File. Incertain embodiments, the table of contents is stored on Applicants'network server 130. In certain such embodiments, the table of contentsis associated with the Playable Media File such that it is alwayspresented to a user viewing the Playable Media File. In otherembodiments, the table of contents may be viewed separately from thePlayable Media File.

Referring now to FIG. 5B, in certain embodiments, Applicants' method caninitiate a discussion thread to be displayed at a specific timelinelocation of the Playable Media File. In step 505, Applicants' networkserver receives a request from a member to initiate a discussion threadat a specified timeline location in the Playable Media File. In step515, Applicants' algorithm 136 generates the discussion thread to becomevisible when the Playable Media File is streamed and viewed at thetimeline specified. In certain embodiments the request further includesa type identifier indicating whether the discussion thread is to be openor closed. Where the open identifier is provided, the discussion threadis open to all members and therefore any member may view and add acomment to the discussion thread. Where the closed identifier isprovided, the discussion thread is private and only available toparticular members. In such embodiments the request provided by theinitiating member includes identifiers for one or more members that areto have access to the discussion thread. In certain such embodimentsApplicants' algorithm 136 further sends invitations to the identifiedmembers to invite them to participate in the thread. In certain suchembodiments, the permissions given to various members to access andparticipate in the discussion thread is stored in permissions file 157.

Members having access to the Playable Media File can then add written,audible, pictorial, or video comments to the thread. In step 525,Applicants network server receives content for inclusion in thediscussion thread. In step 535, Applicants' method adds a descriptor anda timeline for the discussion thread in a Table of Contents associatedwith the Playable Media File. In step 545, additional content for thediscussion thread that is later received is added to the discussionthread in the order received. Further in step 545, a descriptor for thatlater-added content is added to the Table of Contents.

In certain embodiments only members having edit privileges can post inthe discussion thread. In certain embodiments only individuals havingspecific discussion thread privileges can post in the discussion thread.In certain embodiments, the privilege to post in a thread is specific tothe particular thread, and therefore a member may have access to post inone thread but not another. in certain embodiments, the discussionthread is visible to any individual viewing the Playable Media File. Inother embodiments, the discussion thread is visible only to certainindividuals, such as those that have been given specific access to thethread or those that have edit privileges for the video.

For Playable Media Files having discussion threads, data profile 300further includes information fields for each discussion thread 328,including for each comment 330(a)-(n) made in the discussion thread by amember, the GUID of the member author of the comment, and a description334, which may be the comment itself or another identifier.

Applicants' further disclose an article of manufacture comprising aplatform for information management, such as computing device 110, 130,and/or 150, comprising computer readable program code, such as API 116,API 156, and/or Applicants' social network source code 136, residing inanon-transitory computer readable medium, such as computer readablemedium 113, 133, and/or 153, where that computer readable program codecan be executed by a processor, such as processor 112 (FIG. 1) and/or132 (FIG. 1), and/or 152, to implement Applicants' method recited inFIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, and 11.

Applicants further disclose a non-transitory computer readable mediumwherein

Applicants' computer program product is encoded herein. Applicants'computer program product comprises computer readable program code thatcan be executed by a programmable processor to implement Applicants'method recited in FIGS. 4, 5A, 5B, 6, 7, 8, 9, 10, and 11. In eithercase, in certain embodiments, the computer readable program code isencoded in a non-transitory computer readable medium comprising, forexample, a magnetic information storage medium, an optical informationstorage medium, an electronic information storage medium, and the like.“Electronic storage media,” means, for example and without limitation,one or more devices, such as and without limitation, a PROM, EPROM,EEPROM, Flash PROM, compactflash, smartmedia, and the like.

Referring now to FIG. 6, in step 610 Applicants disclose determiningwhether to create a plurality of virtual clips, wherein each virtualclip comprises content encoded in one or more Media File, playable orstatic, from a beginning of the Media File, playable or static, up to adesignated end point, wherein “Media File, playable or static,” means afile selected from the group consisting of an audio file, a video file,an audiovisual file, slide show file, AVI file, MP3 file, MP4 file, WMAfile, WAV file, Flash, MPEG file, an image file (JPG, TIF, PNG, GIF,Bitmap, and the like), a PDF file, a text file, a VISIO file, a .pptfile, a .key file, a spreadsheet file, and any type of 3D media file. Incertain embodiments, such a 3D media file requires holographicprojection/holographic viewing. In certain embodiments, “Media File,playable or static,” further includes any file which generates aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.

If a user elects to create such a plurality of virtual clips, the methodtransitions from step 610 to step 710 (FIG. 7). Referring now to FIG. 7,in step 710 the method, without pausing the media play, displays an ENDCLIP interactable graphical object and a CANCEL CLIP interactablegraphical object.

If the user activates the CANCEL CLIP interactable graphical object instep 720, then the method transitions from step 720 to step 750 andends. Alternatively, if the user does not activate the CANCEL CLIPinteractable graphical object in step 710, then the method transitionsfrom step 710 to step 730 wherein the method determines if the END CLIPinteractable graphical object has been activated. If the methoddetermines in step 730 that the END CLIP interactable graphical objecthas not been activated, then the method pauses at step 730 until theuser activates the END CLIP interactable graphical object, wherein themethod transitions from step 730 to step 740 wherein the methodtemporarily stores a begin time, end time, and total media duration.

In certain embodiments, in step 740 an end timeline location, and thetotal media duration are saved to the user's computing device. Incertain embodiments, in step 740 the begin time, the end time, and atotal media duration are saved to Applicants' network server 130 (FIG.1).

If the user elects in step 610 NOT to create a plurality of virtualclips each from a beginning to a designated end point, then the methodtransitions from step 610 to step 620 wherein the method may elect tocreate a plurality of virtual clips comprising content from one or moreMedia File, playable or static from a designated start point to adesignated end point. If the user elects to create a plurality ofvirtual clips, where each virtual clip comprises content from one ormore Media File, playable or statics, and wherein the user specifies adesignated timeline location to begin the virtual clip, then the methodtransitions from step 620 to step 810 (FIG. 8).

Referring now to FIG. 8, in step 810 the method streams the Media File,playable or static from a designated start point, and without pausingthe media play, displays an END CLIP interactable graphical object and aCANCEL CLIP interactable graphical object.

If the user activates the CANCEL CLIP interactable graphical object instep 820, then the method transitions from step 820 to step 850 andends. Alternatively, if the user does not activate the CANCEL CLIPinteractable graphical object in step 810, then the method transitionsfrom step 810 to step 830 wherein the method determines if the END CLIPinteractable graphical object has been activated. If the methoddetermines in step 830 that the END CLIP interactable graphical objecthas not been activated, then the method pauses at step 830 until theuser activates the END CLIP interactable graphical object, wherein themethod transitions from step 830 to step 840 wherein the methodtemporarily stores a begin time, end time, and total media duration.

In certain embodiments, in step 740 a begin timeline location, an endtimeline location, and the total media duration are saved to the user'scomputing device. In certain embodiments, in step 740 the begin time,the end time, and a total media duration are saved to Applicants'network server 130 (FIG. 1).

If the user elects in step 610 NOT to create a plurality of virtualclips each from a beginning to a designated end point, and if the userelects NOT to create a plurality of virtual clips, where each virtualclip comprises content from one or more Media File, playable or statics,and wherein the user specifies a designated timeline location to beginthe virtual clip, then the method transitions from step 620 to step 630wherein the method determines if the user elects to configure acomposite virtual clip.

If the user elects to configure a composite virtual clip in step 630,the method transitions from step 630 to step 910. Referring now to FIG.9, in step 910 the method selects (N) saved virtual clips to configure acomposite virtual clip, and determines an order of presentation forthose (N) virtual clips.

In step 920, the method sets (M) initially to 1. In step 930, the methodconfigures a (M)th link to a (M)th saved virtual clip, wherein the (M)thsaved virtual clip will be the (M)th virtual clip to be displayed whenthe composite virtual clip is activated. In step 930, the method savesthe (M)th link in a composite virtual clip file.

In step 950, the method determines if (M) equals (N), i.e. if all (N)links to the (N) selected (N) saved virtual clips have been created andsaved. If the method determines in step 950 that (M) does not equal (N),then the method transitions from step 950 to step 960 wherein the methodincrements (M) by 1, i.e. sets (M) equal to (M)+1. The methodtransitions from step 960 to step 930 and continues as described herein.Alternatively, if the method determines in step 950 that (M) equals (N),then the method transitions from step 950 to step 970 and ends.

If the user elects in step 610 NOT to create a plurality of virtualclips each from a beginning to a designated end point, and if the userelects in step 620 NOT to create a plurality of virtual clips, whereeach virtual clip comprises content from one or more Media File,playable or statics, and wherein the user specifies a designatedtimeline location to begin the virtual clip, and if the user does NOTelect in step 630 to configure a composite virtual clip in step 630,then in step 640 the method determines whether to display a compositevirtual clip.

If the user elects to display a composite virtual clip in step 640, themethod transitions to step 1010 where the method provides a storagelocation for a composite virtual clip file configured to access (M)saved clips. In step 1020, the method sets (P) initially to 1. In step1030 the method activates a (P)th link encoded in the composite virtualclip file to stream a (P)th saved virtual clip to the users device.

In step 1040 the method determines if all (N) clips comprising theselected composite virtual clip have been displayed, i.e. if (P) equals(N). If the method determines in step 1040 that (p) does not equal (N),then the method transitions from step 1040 to step 1050 and increments(P) by 1, i.e. sets (P) equal to (P)+1. The method transitions from step1050 to step 1030 and continues as described herein. Alternatively, ifthe method determines in step 1040 that (P) equals (N), the methodtransitions to step 1060 and ends.

If a user elects in step 650 to apply one or more transitioning effectto one or more saved virtual clips, then the method transitions fromstep 650 to step 1110. As those skilled in the art will appreciate, a“transition” comprises an animation-like effect when Applicants' methodto display a composite virtual clip moves from one previously savedvirtual clip to a next previously saved virtual clip during an on-screenpresentation. Applicants' method allows control the speed of eachtransition effect. In addition, Applicants' method also permits theaddition of sound transitions when moving from a saved virtual clip tothe next saved virtual clip.

If a user desires in step 650 to add one or more transition effects to apreviously configured composite virtual clip, Applicants' methodtransitions from step 650 to step 1110 (FIG. 11). Referring now to FIG.11, in step 1110 the method selects a previously configured compositevirtual clip, wherein that composite virtual clip is configured toinclude (N) previously saved virtual clips in an order from 1 to (N).

In step 1120, the method selects a transition effect having a knownstorage location. In step 1130, the method configures an (i)thtransition effect link pointing to the known storage location for thedesired transition effect.

In step 1140, the method configures the (i)th transition effect link tobe activated after activation of a link to an (i)th virtual clip andbefore activation of a link to an (i+l)th virtual clip. In step 1150,the method updates the composite virtual clip file to include the (i)thtransition effect link.

In step 1160, the method determines if the user desires to configureadditional transition effects for the selected composite virtual clip.If the user elects to configure additional transition effect links, thenthe method transition from step 1160 to step 1120 and continues asdescribed herein. Alternatively, if the user does not elect to configureadditional transition effect links, then the method transition from step1160 to step 1170 and ends.

If a user desires in step 660 to add one or more lensing effects to apreviously configured composite virtual clip, Applicants' methodtransitions from step 660 to step 1210 (FIG. 12) As those skilled in theart will appreciate, a “lensing” effect includes, for example andwithout limitation, overlay of one or more color filters, imagedistortions, and annotations.

Referring now to FIG. 12, in step 1210 the method selects a previouslyconfigured composite virtual clip, wherein that composite virtual clipis configured to include (N) previously saved virtual clips in an orderfrom 1 to (N).

In step 1220, the method selects a lensing effect having a known storagelocation. In step 1230, the method configures an (i)th lensing effectlink pointing to the known storage location for the desired lensingeffect.

In step 1240, the method configures the (i)th lensing effect link to besimultaneously with activation of a link to an (i)th virtual clip. Instep 1250, the method updates the composite virtual clip file to includethe (i)th lensing effect link.

In step 1260, the method determines if the user desires to configureadditional lensing effects for the selected composite virtual clip. Ifthe user elects to configure additional transition effect links, thenthe method transition from step 1260 to step 1220 and continues asdescribed herein. Alternatively, if the user does not elect to configureadditional transition effect links, then the method transition from step1260 to step 1270 and ends.

If a user desires in step 670 to add one or more sound effects to apreviously configured composite virtual clip, Applicants methodtransitions from step 670 to step 1310 (FIG. 13). Referring now to FIG.13, in step 1310 the method selects a previously configured compositevirtual clip, wherein that composite virtual clip is configured toinclude (N) previously saved virtual clips in an order from 1 to (N).

In step 1320, the method selects a sound effect having a known storagelocation. In step 1330, the method configures an (i)th sound effect linkpointing to the known storage location for the desired lensing effect.

In step 1340, the method configures the (i)th sound effect link to besimultaneously with activation of a link to an (i)th virtual clip. Instep 1350, the method updates the composite virtual clip file to includethe (i)th sound effect link.

In step 1360, the method determines if the user desires to configureadditional sound effects for the selected composite virtual clip. If theuser elects to configure additional sound effect links, then the methodtransition from step 1360 to step 1320 and continues as describedherein. Alternatively, if the user does not elect to configureadditional sound effect links, then the method transition from step 1360to step 1370 and ends.

While the preferred embodiments of the present invention have beenillustrated in detail, it should be apparent that modifications andadaptations to those embodiments may occur to one skilled in the artwithout departing from the scope of the present invention as set forthherein.

We claim:
 1. A method to create and save an annotation associated with aPlayable Media File, comprising: receiving a Playable Media File;creating an annotation relating to said Playable Media File; providingsaid annotation to a network server; providing a data profile to saidnetwork server, wherein said data profile comprises a location in saidPlayable Media File where said annotation should be made visible;determining by said network server if said annotation is a firstannotation submitted for said Playable media File; if said annotation isnot a first annotation submitted for said Playable Media File, encodingsaid data profile in a previously-created table of contents for saidPlayable Media File; if said annotation is a first annotation submittedfor said Playable Media File: creating a table of contents by saidnetwork server for said Playable Media File; encoding by said networkserver said data profile in said table of contents; wherein saidPlayable Media File is selected from the group consisting of an audiofile, a video file, an audiovisual file, slide show, AVI file, MP3 file,MP4 file, WMA file, WAV file, Flash, and MPEG file.
 2. The method ofclaim 1, further comprising initiating a discussion thread within saidPlayable Media File at said location.
 3. The method of claim 1, wherein:said receiving further comprises receiving a Playable Media file by afirst member of a social network; said creating further comprisescreating an annotation by said first member of said social network; saidproviding steps are performed by said first member of said socialnetwork.
 4. The method of claim 2, wherein said initiating furthercomprises initiating by said first member a discussion thread withinsaid Playable Media File at said location.
 5. The method of claim 1,further comprising storing said annotation as a file separate from saidPlayable Media File.
 6. The method of claim 5, further comprisingexecuting said Playable Media File by a second member of said socialnetwork.
 7. The method of claim 6, wherein said first member differsfrom said second member.
 8. The method of claim 6, wherein said firstmember and said second member are the same.
 9. The method of claim 6,further comprising when said Playable Media File reaches said location,making said annotation visible.
 10. The method of claim 9, furthercomprising: displaying said executing Playable Media File in a firstwindow; and displaying said annotation in a second window.
 11. Themethod of claim 9, further comprising displaying both said executingPlayable Media File and said annotation in the same window.
 12. Anarticle of manufacture comprising a processor, a computer readablemedium comprising computer readable program code disposed therein tocreate and save an annotation associated with a Playable Media File, thecomputer readable program code comprising a series of computer readableprogram steps to cause the processor to effect: receiving a PlayableMedia File; creating an annotation relating to said Playable Media File;providing said annotation to a network server; providing a data profileto said network server, wherein said data profile comprises a locationin said Playable Media File where said annotation should be madevisible; determining by said network server if said annotation is afirst annotation submitted for said Playable media File; if saidannotation is not a first annotation submitted for said Playable MediaFile, encoding said data profile in a previously-created table ofcontents for said Playable Media File; if said annotation is a firstannotation submitted for said Playable Media File: creating a table ofcontents by said network server for said Playable Media File; encodingby said network server said data profile in said table of contents;wherein said Playable Media File is selected from the group consistingof an audio file, a video file, an audiovisual file, slide show, AVIfile, MP3 file, MP4 file, WMA file, WAV file, Flash, and MPEG file. 13.The article of manufacture 12, said computer readable program codefurther comprises a series of computer readable program steps to effectinitiating a discussion thread within said Playable Media File at saidlocation.
 14. The article of manufacture 12, wherein: the computerprogram readable step of receiving further comprises a computer programreadable step of receiving a Playable Media file by a first member of asocial network; the computer program readable step of creating furthercomprises a computer program readable step of creating an annotation bysaid first member of said social network; and the computer programreadable step of providing steps are instructed by said first member ofsaid social network to be effected by the processor.
 15. The article ofmanufacture 13, wherein the computer program readable step of initiatingfurther comprises a computer program readable step of initiating by saidfirst member a discussion thread within said Playable Media File at saidlocation.
 16. The article of manufacture 12, said computer readableprogram code further comprises a series of computer readable programsteps to effect storing said annotation as a file separate from saidPlayable Media File.
 17. The article of manufacture 16, said computerreadable program code further comprising a series of computer readableprogram steps to execute said Playable Media File by a second member ofsaid social network.
 18. The article of manufacture 17, wherein saidfirst member differs from said second member.
 19. The article ofmanufacture 17, wherein said first member and said second member are thesame.
 20. The article of manufacture 17, when said Playable Media Filereaches said location, said computer readable program code furthercomprising a series of computer readable program steps to making saidannotation visible.
 21. The article of manufacture 20, said computerreadable program code further comprising a series of computer readableprogram steps to: displaying said executing Playable Media File in afirst window; and displaying said annotation in a second window.
 22. Thearticle of manufacture 20, said computer readable program code furthercomprising a series of computer readable program steps to displayingboth said executing Playable Media File and said annotation in the samewindow.
 23. A non-transitory computer usable medium encoded with acomputer program product to create and save an annotation associatedwith a Playable Media File and usable with programmable computerprocessor disposed within a controller, comprising: computer readableprogram code which causes said programmable computer processor toreceive a Playable Media File; computer readable program code whichcauses said programmable computer processor to create an annotationrelating to said Playable Media File; computer readable program codewhich causes said programmable computer processor to provide saidannotation to a network server; computer readable program code whichcauses said programmable computer processor to provide a data profile tosaid network server, wherein said data profile comprises a location insaid Playable Media File where said annotation should be made visible;computer readable program code which causes said programmable computerprocessor to determine by said network server if said annotation is afirst annotation submitted for said Playable media File; if saidannotation is not a first annotation submitted for said Playable MediaFile, computer readable program code which causes said programmablecomputer processor to encode said data profile in a previously-createdtable of contents for said Playable Media File; if said annotation is afirst annotation submitted for said Playable Media File: computerreadable program code which causes said programmable computer processorto create a table of contents by said network server for said PlayableMedia File; computer readable program code which causes saidprogrammable computer processor to encode by said network server saiddata profile in said table of contents; wherein said Playable Media Fileis selected from the group consisting of an audio file, a video file, anaudiovisual file, slide show, AVI file, MP3 file, MP4 file, WMA file,WAV file, Flash, and MPEG file.
 24. The computer program product ofclaim 23, further comprising computer readable program code which causessaid programmable computer processor to initiate a discussion threadwithin said Playable Media File at said location.
 25. The computerprogram product of claim 23, wherein: said receiving further comprisescomputer readable program code which causes said programmable computerprocessor to receive a Playable Media file by a first member of a socialnetwork; said creating further comprises computer readable program codewhich causes said programmable computer processor to create anannotation by said first member of said social network.
 26. The computerprogram product of claim 24, wherein said initiating further comprisescomputer readable program code which causes said programmable computerprocessor to initiate by said first member a discussion thread withinsaid Playable Media File at said location.
 27. The computer programproduct of claim 23, further comprising computer readable program codewhich causes said programmable computer processor to store saidannotation as a file separate from said Playable Media File.
 28. Thecomputer program product of claim 27, further comprising computerreadable program code which causes said programmable computer processorto execute said Playable Media File by a second member of said socialnetwork.
 29. The computer program product of claim 28, wherein saidfirst member differs from said second member.
 30. The computer programproduct of claim 28, wherein said first member and said second memberare the same.
 31. The computer program product of claim 28, furthercomprising computer readable program code which causes said programmablecomputer processor to make said annotation visible when said PlayableMedia File reaches said location.
 32. The computer program product ofclaim 31, further comprising: computer readable program code whichcauses said programmable computer processor to display said executingPlayable Media File in a first window; and computer readable programcode which causes said programmable computer processor to display saidannotation in a second window.
 33. The computer program product of claim31, further comprising computer readable program code which causes saidprogrammable computer processor to display both said executing PlayableMedia File and said annotation in the same window.
 34. A method to makea composite virtual clip, comprising: selecting (N) saved virtual clipsand an order of presentation for each virtual clip; initially setting(M)=1; configuring a (M)th pointer to indicate a storage location for a(M)th saved virtual clip, wherein a (M)th virtual clip comprises a (M)thcontent from one or more designated sources and (M) is greater than orequal to 1 and less than or equal to (N); saving said (M)th pointer;determining if (M) equals (N); when (M) is less than (N), setting (M)equal to (M)+1; and repeating said configuring, saving, and determininguntil (M) equals (N).
 35. The method of claim 34, wherein said compositevirtual clip further comprises one or more first type virtual clips,wherein the first type virtual clip comprises content from a Media File,playable or static, from a beginning to a first designated end point,wherein a Media File, playable or static, is selected from the groupconsisting of AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash,MPEG file, an image file (JPG, TIF, PNG, GIF, Bitmap, and the like), aPDF file, a text file, a VISIO file, a .ppt file, a .key file, aspreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 36. The method of claim 35, further comprising:displaying a first interactable graphical object, wherein the firstinteractable graphical object comprises a Cancel Clip link;simultaneously displaying a second interactable graphical object,wherein the second interactable graphical object comprises an End Cliplink; when activating the first interactable graphical object, a begintime location, end time location, and first media duration of the firsttype virtual clip are not stored; and when activating the secondinteractable graphical object, the begin time location, end timelocation, and first media during of the first type virtual clip arestored.
 37. The method of claim 34, wherein said composite virtual clipfurther comprises one or more second type virtual clips, wherein thesecond type virtual clip comprising content from a Media File, playableor static, from a designated beginning to a second designated end point,wherein said Media File, playable or static, is selected from the groupconsisting of an AVI file, MP3 file, MP4 file, WMA file, WAV file,Flash, MPEG file, an image file (PG, TIF, ENG, GIF, Bitmap, and thelike), a PDF file, a text file, a .ppt file, a .key file, a VISIO file,a spreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 38. The method of claim 37, further comprising:displaying a first interactable graphical object, wherein the firstinteractable graphical object comprises a Cancel Clip link;simultaneously displaying a second interactable graphical object,wherein the second interactable graphical object comprises an End Cliplink; when activating the third interactable graphical object, a begintime location, end time location, and first media duration of the secondtype virtual clip are not stored; and when activating the fourthinteractable graphical object, the begin time location, end timelocation, and first media during of the second type virtual clip arestored.
 39. The method of claim 34, wherein said composite virtual clipfurther comprises one or more first type virtual clips and one or moresecond type virtual clips.
 40. A method to display a composite virtualclip, comprising: providing a storage location for a composite virtualclip stored in a composite virtual clip file, wherein the compositevirtual clip is configured to access (N) saved virtual clips; initiallysetting (P)=1; activating a (P)th link encoded in the composite virtualclip file to stream a (P)th saved virtual clip to a user's device;determining if (P) equals (N); when (P) is less than (N), setting (P)equals (P)+1; and repeating said activating and determining until (P)equals (N).
 41. The method of claim 40, wherein said composite virtualclip further comprises one or more first type virtual clips, wherein thefirst type virtual clip comprising content from a Media File, playableor static from a beginning to a first designated end point, wherein saidMedia File, static or playable, is selected from the group consisting ofan AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file,an image file (JPG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, atext file, a VISIO file, a .ppt file, a .key file, a spreadsheet file,and any type of 3D media file which provides a Stereoscopic visualdisplay that can be viewed through stereoscopic eyewear or played on 3Ddisplay technology such as 3D TV, and in certain embodiments comprises aVirtual Reality/Augmented Realty file that can be viewed through VirtualReality devices such as Hololense, Oculus Rift, Sony Playstation VR, HCTVIVE, Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 42. Themethod of claim 40, wherein said composite virtual clip furthercomprises one or more second type virtual clips, wherein the second typevirtual clip comprising content from a Media File, playable or staticfrom a designated start point to a second designated end point, whereinsaid Media File, static or playable, is selected from the groupconsisting of an AVI file, MP3 file, MP4 file, WMA file, WAV file,Flash, MPEG file, an image file (JPG, TIF, PNG, GIF, Bitmap, and thelike), a PDF file, a text file, a .ppt file, a .key file, a VISIO file,a spreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 43. The method of claim 40, wherein saidcomposite virtual clip further comprises one or more first type virtualclips and one or more second type virtual clips.
 44. A method to add atransition effect to a composite virtual clip, comprising: selecting acomposite virtual clip, wherein the composite virtual clip is defined by(N) saved virtual clips and an order of presentation of each virtualclip from 1 to N; selecting a transition effect having a known storagelocation; initially setting (i)=1; configuring an (i)th transitioneffect link pointing to a known (i)th transition effect storagelocation; configuring the (i)th transition effect link to be activatedafter activating an (i)th virtual clip link and before activation of an(i+1)th virtual clip link, wherein (i) is between 1 and (N)-1; updatingthe composite virtual clip file o include the (i)th transition effectlink; determining if (i) equals (N); when (i) is less than (N), setting(i) equals (i)+(1); and repeating selecting and configuring to add the(i)th transition effect to the composite virtual clip until (i) equals(N)-1.
 45. A method to add a lensing effect to a composite virtual clip,comprising: selecting a composite virtual clip, wherein the compositevirtual clip defined by (N) saved virtual clips and an order ofpresentation of each virtual clip from 1 to N; selecting a lensingeffect having a known storage location; setting (k) initially equals to1; configuring an (k)th lensing effect link pointing to a known (k)thstorage location; configuring the (k)th lensing effect link to beactivated simultaneously with an (k)th virtual clip, wherein (k) isbetween 1 and (N); updating the composite virtual clip to include the(k)th lensing effect link; determining if (k) equals (N); when (k) isless than (N), setting (k) equals (k)+(1); and repeating selecting andconfiguring to add the (k)th lensing effect to the composite virtualclip until (k) equals (N).
 46. A method to add a sound effect to acomposite virtual clip, comprising: selecting a composite virtual clip,wherein the composite virtual clip is defined by (N) saved virtual clipsand an order of presentation of each virtual clip from 1 to N; selectinga sound effect having a known storage location; setting (j) initiallyequals to 1; configuring an (j)th sound effect link pointing to a known(j)th storage location; configuring the (j)th sound effect link to beactivated simultaneously with an (j)th virtual clip, wherein (j) isbetween 1 and (N); updating the composite virtual clip to include the(j)th sound effect link; determining if (j) equals (N); when (j) is lessthan (N), setting (j) equals (j)+(1); and repeating selecting andconfiguring to add the (j)th sound effect to the composite virtual clipuntil (j) equals (N).
 47. An article of manufacture comprising aprocessor, a computer readable medium comprising computer readableprogram code disposed therein to make a composite virtual clip, thecomputer readable program code comprising a series of computer readableprogram steps to cause the processor to effect: selecting (N) savedvirtual clips and an order of presentation for each virtual clip;initially setting (M)=1; configuring a (M)th pointer to indicate astorage location for a (M)th saved virtual clip, wherein a (M)th virtualclip comprises a (M)th content from one or more designated sources and(M) is greater than or equal to 1 and less than or equal to (N); savingsaid (M)th pointer; determining if (M) equals (N); when (M) is less than(N), setting (M) equal to (M)+1; and repeating said configuring, saving,and determining until (M) equals (N).
 48. The article of manufacture 47,wherein said composite virtual clip further comprises one or more firsttype virtual clips, wherein the first type virtual clip comprisescontent from a Media File, playable or static from a beginning to afirst designated end point, wherein said Media File, static or playable,is selected from the group consisting of an AVI file, MP3 file, MP4file, WMA file, WAV file, Flash, MPEG file, an image file (PG, TIF, PNG,GIF, Bitmap, and the like), a PDF file, a text file, a .ppt file, a .keyfile, a VISIO file, a spreadsheet file, and any type of 3D media filewhich provides a Stereoscopic visual display that can be viewed throughstereoscopic eyewear or played on 3D display technology such as 3D TV,and in certain embodiments comprises a Virtual Reality/Augmented Realtyfile that can be viewed through Virtual Reality devices such asHololense, Oculus Rift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK,Zeiss VR1, SOV VR, Freefly, and the like.
 49. The article of manufacture48, said computer readable program code further comprising a series ofcomputer readable program steps to effect: displaying a firstinteractable graphical object, wherein the first interactable graphicalobject comprises a Cancel Clip link; simultaneously displaying a secondinteractable graphical object a, wherein the second interactablegraphical object comprises an End Clip link; when activating the firstinteractable graphical object, a begin time location, end time location,and first media duration of the first type virtual clip are not stored;and when activating the second interactable graphical object, the begintime location, end time location, and first media during of the firsttype virtual clip are stored.
 50. The article of manufacture 47, whereinsaid composite virtual clip further comprises one or more second typevirtual clips, wherein the second type virtual clip comprising contentfrom a Media File, playable or static from a designated beginning to asecond designated end point, wherein said Media File, static orplayable, is selected from the group consisting of an AVI file, MP3file, MP4 file, WMA file, WAV file, Flash, MPEG file, an image file(JPG, PNG, GIF, Bitmap, and the like), a PDF file, a text file, a VISIOfile, a .ppt file, a .key file, a spreadsheet file, and any type of 3Dmedia file which provides a Stereoscopic visual display that can beviewed through stereoscopic eyewear or played on 3D display technologysuch as 3D TV, and in certain embodiments comprises a VirtualReality/Augmented Realty file that can be viewed through Virtual Realitydevices such as Hololense, Oculus Rift, Sony Playstation VR, HCT VIVE,Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 51. Thearticle of manufacture 50, said computer readable program code furthercomprising a series of computer readable program steps to effect:displaying a first interactable graphical object, wherein the firstinteractable graphical object comprises a Cancel Clip link;simultaneously displaying a second interactable graphical object,wherein the second interactable graphical object comprises an End Cliplink; when activating the third interactable graphical object, notstoring a begin time location, end time location, and first mediaduration of the second type virtual clip; and when activating the fourthinteractable graphical object, storing the begin time location, end timelocation, and first media during of the second type virtual clip. 52.The article of manufacture 47, wherein said composite virtual clipfurther comprises one or more first type virtual clips and one or moresecond type virtual clips.
 53. An article of manufacture comprising aprocessor, a computer readable medium comprising computer readableprogram code disposed therein to display a composite virtual clip, thecomputer readable program code comprising a series of computer readableprogram steps to cause the processor to effect: providing a storagelocation for a composite virtual clip stored in a composite virtual clipfile, wherein the composite virtual clip is configured to access (N)saved virtual clips; initially setting (P)=1; activating a (P)th linkencoded in the composite virtual clip file to stream a (P)th savedvirtual clip to a user's device; determining if (P) equals (N); when (P)is less than (N), setting (P) equals (P)+1; and repeating saidactivating and determining until (P) equals (N).
 54. The article ofmanufacture 53, wherein said composite virtual clip further comprisesone or more first type virtual clips, wherein the first type virtualclip comprising content from a Media File, playable or static from abeginning to a first designated end point, wherein said Media File,static or playable, is selected from the group consisting of an AVIfile, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file, an imagefile (JPG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, a textfile, a .ppt file, a .key file, a VISIO file, a spreadsheet file, andany type of 3D media file which provides a Stereoscopic visual displaythat can be viewed through stereoscopic eyewear or played on 3D displaytechnology such as 3D TV, and in certain embodiments comprises a VirtualReality/Augmented Realty file that can be viewed through Virtual Realitydevices such as Hololense, Oculus Rift, Sony Playstation VR, HCT VIVE,Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 55. Thearticle of manufacture 53, wherein said composite virtual clip furthercomprises one or more second type virtual clips, wherein the second typevirtual clip comprising content from a Media File, playable or staticfrom a designated start point to a second designated end point, whereinsaid Media File, static or playable, is selected from the groupconsisting of an AVI file, MP3 file, MP4 file, WMA file, WAV file,Flash, MPEG file, an image file (JPG, TIF, PNC; GIF. Bitmap, and thelike), a PDF file, a text file, a .ppt file, a .key file, a VISIO file,a spreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 56. The article of manufacture 53, wherein saidcomposite virtual clip further comprises one or more first type virtualclips and one or more second type virtual clips.
 57. An article ofmanufacture comprising a processor, a computer readable mediumcomprising computer readable program code disposed therein to add atransition effect to a composite virtual clip, the computer readableprogram code comprising a series of computer readable program steps tocause the processor to effect: selecting a composite virtual clip,wherein the composite virtual clip is defined by (N) saved virtual clipsand an order of presentation of each virtual clip from 1 to N; selectinga transition effect having a known storage location; initially setting(i)=1; configuring an (i)th transition effect link pointing to a known(i)th transition effect storage location; configuring the (i)thtransition effect link to be activated after activating an (i)th virtualclip link and before activation of an (i+1)th virtual clip, link wherein(i) is between 1 and (N)-1; updating the composite virtual clip file oinclude the (i)th transition effect link; determining if (i) equals (N);when (i) is less than (N), setting (i) equals (i)+(1); and repeatingselecting and configuring to add the (i)th transition effect to thecomposite virtual clip until (i) equals (N)-1.
 58. An article ofmanufacture comprising a processor, a computer readable mediumcomprising computer readable program code disposed therein to add alensing effect to a composite virtual clip, the computer readableprogram code comprising a series of computer readable program steps tocause the processor to effect: selecting a composite virtual clip,wherein the composite virtual clip defined by (N) saved virtual clipsand an order of presentation of each virtual clip from 1 to N; selectinga lensing effect having a known storage location; setting (k) initiallyequals to 1; configuring an (k)th lensing effect link pointing to theknown (k)th storage location; configuring the (k)th lensing effect linkto be activated simultaneously with an (k)th virtual clip, wherein (k)is between 1 and (N); updating the composite virtual clip to include the(k)th lensing effect link; determining if (k) equals (N); when (k) isless than (N), setting (k) equals (k)+(1); and repeating selecting andconfiguring to add the (k)th lensing effect to the composite virtualclip until (k) equals (N).
 59. An article of manufacture comprising aprocessor, a computer readable medium comprising computer readableprogram code disposed therein to add a sound effect to a compositevirtual clip, the computer readable program code comprising a series ofcomputer readable program steps to cause the processor to effect:selecting a composite virtual clip, wherein the composite virtual clipis defined by (N) saved virtual clips and an order of presentation ofeach virtual clip from 1 to N; selecting a sound effect having a knownstorage location; setting (j) initially equals to 1; configuring an(j)th sound effect link pointing to the known (j)th storage location;configuring the (j)th sound effect link to be activated simultaneouslywith an (j)th virtual clip, wherein (j) is between 1 and (N); updatingthe composite virtual clip to include the (j)th sound effect link;determining if (j) equals (N); when (j) is less than (N), setting (j)equals (j)+(1); and repeating selecting and configuring to add the (j)thsound effect to the composite virtual clip until (j) equals (N).
 60. Anon-transitory computer usable medium encoded with a computer programproduct to make a composite virtual clip and usable with programmablecomputer processor disposed within a controller, comprising: computerreadable program code which causes said programmable computer processorto select (N) saved virtual clips and an order of presentation for eachvirtual clip; computer readable program code which causes saidprogrammable computer processor to initially set (M)=1; computerreadable program code which causes said programmable computer processorto configure a (M)th pointer to indicate a storage location for a (M)thsaved virtual clip, wherein a (M) th virtual clip comprises a (M)thcontent from one or more designated sources and (M) is greater than orequal to 1 and less than or equal to (N); computer readable program codewhich causes said programmable computer processor to save said (M)thpointer; computer readable program code which causes said programmablecomputer processor to determine if (M) equals (N); when (M) is less than(N), computer readable program code which causes said programmablecomputer processor to set (M) equal to (M)+1; and computer readableprogram code which causes said programmable computer processor to repeatsaid configuring, saving, and determining until (M) equals (N).
 61. Thecomputer program product of claim 60, wherein said composite virtualclip further comprises one or more first type virtual clips, wherein thefirst type virtual clip comprises content from a Media File, playable orstatic from a beginning to a first designated end point, wherein saidMedia File, static or playable, is selected from the group consisting ofan AVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file,an image file PG, TIF, PRIG, GIF Bitmap, and the like), a PDF file, atext file, a .ppt file, a .key file, a VISIO file, a spreadsheet file,and any type of 3D media file which provides a Stereoscopic visualdisplay that can be viewed through stereoscopic eyewear or played on 3Ddisplay technology such as 3D TV, and in certain embodiments comprises aVirtual Reality/Augmented Realty file that can be viewed through VirtualReality devices such as Hololense, Oculus Rift, Sony Playstation VR, HCTVIVE, Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 62. Thecomputer program product of claim 61, further comprising computerreadable program code which causes said programmable computer processorto: display a first interactable graphical object, wherein the firstinteractable graphical object comprises a Cancel Clip link;simultaneously display a second interactable graphical object a, whereinthe second interactable graphical object comprises an End Clip link;when activating the first interactable graphical object, not to store abegin time location, end time location, and first media duration of thefirst type virtual clip; and when activating the second interactablegraphical object, store the begin time location, end time location, andfirst media during of the first type virtual clip.
 63. The computerprogram product of claim 60, wherein said composite virtual clip furthercomprises one or more second type virtual clips, wherein the second typevirtual clip comprising content from a Media File, playable or staticfrom a designated beginning to a second designated end point, whereinsaid Media File, static or playable, is selected from the groupconsisting of an AVI file, MP3 file, MP4 file, WMA file, WAV file,Flash, MPEG file, an image file (PG, TIF, PNG, GIF, Bitmap, and thelike), a PDF file, a .ppt file, a .key file, a text file, a VISIO file,a spreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 64. The computer program product of claim 63,further comprising computer readable program code which causes saidprogrammable computer processor to: display a first interactablegraphical object, wherein the first interactable graphical objectcomprises a Cancel Clip link; simultaneously display a secondinteractable graphical object, wherein the second interactable graphicalobject comprises an End Clip link; when activating the thirdinteractable graphical object, not to store a begin time location, endtime location, and first media duration of the second type virtual clip;and when activating the fourth interactable graphical object, store thebegin time location, end time location, and first media during of thesecond type virtual clip.
 65. The computer program product of claim 60,wherein said composite virtual clip further comprises one or more firsttype virtual clips and one or more second type virtual clips.
 66. Anon-transitory computer usable medium encoded with a computer programproduct to display a composite virtual clip and usable with programmablecomputer processor disposed within a controller, comprising: computerreadable program code which causes said programmable computer processorto provide a storage location for a composite virtual clip stored in acomposite virtual clip file, wherein the composite virtual clip isconfigured to access (N) saved virtual clips; computer readable programcode which causes said programmable computer processor to initially set(P)=1; computer readable program code which causes said programmablecomputer processor to activate a (P)th link encoded in the compositevirtual clip file to stream a (P)th saved virtual clip to a user'sdevice; computer readable program code which causes said programmablecomputer processor to determine if (P) equals (N); when (P) is less than(N), computer readable program code which causes said programmablecomputer processor to set (P) equals (P)+1; and computer readableprogram code which causes said programmable computer processor to repeatsaid activating and determining until (P) equals (N).
 67. The computerprogram product of claim 66, wherein said composite virtual clip furthercomprises one or more first type virtual clips, wherein the first typevirtual clip comprising content from a Media File, playable or staticfrom a beginning to a first designated end point, wherein said MediaFile, static or playable, is selected from the group consisting of anAVI file, MP3 file, MP4 file, WMA file, WAV file, Flash, MPEG file, animage file (PG, TIF, PNG, GIF, Bitmap, and the like), a PDF file, a textfile, a .ppt file, a .key file, a VISIO file, a spreadsheet file, andany type of 3D media file which provides a Stereoscopic visual displaythat can be viewed through stereoscopic eyewear or played on 3D displaytechnology such as 3D TV, and in certain embodiments comprises a VirtualReality/Augmented Realty file that can be viewed through Virtual Realitydevices such as Hololense, Oculus Rift, Sony Playstation VR, HCT VIVE,Razer OSBR HDK, Zeiss VR1, SOV VR, Freefly, and the like.
 68. Thecomputer program product of claim 66, wherein said composite virtualclip further comprises one or more second type virtual clips, whereinthe second type virtual clip comprising content from a Media File,playable or static from a designated start point to a second designatedend point, wherein said Media File, static or playable, is selected fromthe group consisting of an AVI file, MP3 file, MP4 file, WMA file, WAVfile, Flash, MPEG file, an image file (JPG, TIF, ENG, GIF, Bitmap, andthe like), a PDF file, a text file, a .ppt file, a .key file, a VISIOfile, a spreadsheet file, and any type of 3D media file which provides aStereoscopic visual display that can be viewed through stereoscopiceyewear or played on 3D display technology such as 3D TV, and in certainembodiments comprises a Virtual Reality/Augmented Realty file that canbe viewed through Virtual Reality devices such as Hololense, OculusRift, Sony Playstation VR, HCT VIVE, Razer OSBR HDK, Zeiss VR1, SOV VR,Freefly, and the like.
 69. The computer program product of claim 66,wherein said composite virtual clip further comprises one or more firsttype virtual clips and one or more second type virtual clips.
 70. Anon-transitory computer usable medium encoded with a computer programproduct to add a transition effect to a composite virtual clip andusable with programmable computer processor disposed within acontroller, comprising: computer readable program code which causes saidprogrammable computer processor to select a composite virtual clip,wherein the composite virtual clip is defined by (N) saved virtual clipsand an order of presentation of each virtual clip from 1 to N; computerreadable program code which causes said programmable computer processorto select a transition effect having a known storage location; computerreadable program code which causes said programmable computer processorto initially set (i)=1; computer readable program code which causes saidprogrammable computer processor to configure an (i)th transition effectlink pointing to a known (i)th transition effect storage location;computer readable program code which causes said programmable computerprocessor to configure the (i)th transition effect link to be activatedafter activating an (i)th virtual clip link and before activation of an(i+1)th virtual clip, link wherein (i) is between 1 and (N)-1; computerreadable program code which causes said programmable computer processorto update the composite virtual clip file o include the (i)th transitioneffect link; computer readable program code which causes saidprogrammable computer processor to determine if (i) equals (N); when (i)is less than (N), computer readable program code which causes saidprogrammable computer processor to set (i) equals (i)+(1); and computerreadable program code which causes said programmable computer processorto repeat selecting and configuring to add the (i)th transition effectto the composite virtual clip until (i) equals (N).
 71. A non-transitorycomputer usable medium encoded with a computer program product to add alensing effect to a composite virtual clip and usable with programmablecomputer processor disposed within a controller, comprising: computerreadable program code which causes said programmable computer processorto select a composite virtual clip, wherein the composite virtual clipincludes (N) saved virtual clips and an order of presentation of eachvirtual clip from 1 to N; computer readable program code which causessaid programmable computer processor to select a lensing effect having aknown storage location; computer readable program code which causes saidprogrammable computer processor to set (k) initially equals to 1;computer readable program code which causes said programmable computerprocessor to configure an (k)th lensing effect link pointing to theknown (k)th storage location; computer readable program code whichcauses said programmable computer processor to configure the (k)thlensing effect link to be activated simultaneously with an (k)th virtualclip, wherein (i) is between 1 and (N); computer readable program codewhich causes said programmable computer processor to update thecomposite virtual clip to include the (k)th lensing effect link;computer readable program code which causes said programmable computerprocessor to determine if (k) equals (N); when (k) is less than (N),computer readable program code which causes said programmable computerprocessor to set (k) equals (k)+(1); and computer readable program codewhich causes said programmable computer processor to repeat selectingand configuring to add the (k)th lensing effect to the composite virtualclip until (k) equals (N).
 72. A non-transitory computer usable mediumencoded with a computer program product to add a sound effect to acomposite virtual clip and usable with programmable computer processordisposed within a controller, comprising: computer readable program codewhich causes said programmable computer processor to select a compositevirtual clip, wherein the composite virtual clip is defined by (N) savedvirtual clips and an order of presentation of each virtual clip from 1to N; computer readable program code which causes said programmablecomputer processor to select a sound effect having a known storagelocation; computer readable program code which causes said programmablecomputer processor to set (j) initially equals to 1; computer readableprogram code which causes said programmable computer processor toconfigure an (j)th sound effect link pointing to the known (j)th storagelocation; computer readable program code which causes said programmablecomputer processor to configure the (j)th sound effect link to beactivated simultaneously with an (j)th virtual clip, wherein (j) isbetween 1 and (N); computer readable program code which causes saidprogrammable computer processor to update the composite virtual clip toinclude the (j)th sound effect link; computer readable program codewhich causes said programmable computer processor to determine if (j)equals (N); when (j) is less than (N), computer readable program codewhich causes said programmable computer processor to set (j) equals(j)+(1); and computer readable program code which causes saidprogrammable computer processor to repeat selecting and configuring toadd the (j)th sound effect to the composite virtual clip until (j)equals (N).